Method and Apparatus for Hierarchical Selective Personalization

ABSTRACT

A technique for delivering content in a client-server system based on a request received at a computing device from a client includes determining a current load on a next-level computing device of a hierarchy. When this current load is such that a response time for delivery of the request from the next-level computing device would increase above a given threshold, a client type associated with the request is checked and, when the client type indicates that the client is below a given priority level, content to be delivered to the client in response to the request is personalized at the receiving computing device. When the current load is such that the response time would not increase above a given threshold, the request is sent from the receiving computing device to the next-level computing device and the content to be delivered is personalized at the next-level computing device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a divisional of U.S. application Ser. No. 10/789,087filed on Feb. 27, 2004, the disclosure of which is incorporated hereinby reference.

FIELD OF THE INVENTION

The present invention relates to distributed data processing systemsand, more particularly, to distributed data processing systems forserving personalized content.

BACKGROUND OF THE INVENTION

“Personalization” in the context of distributed data networks involvingclients and servers (such as the Internet or World Wide Web) is the termgenerally given to the process of serving content customized in some wayto a requesting client. The basic mechanism for personalization in suchdata networks includes composing a Web page served on a Web server basedon knowledge of the identity of the client.

A key problem with existing personalization technique, however, is thatit can introduce significant overhead for producing content.Personalized content may require accesses to back-end databases whichcan consume significant central processing unit (CPU) cycles.

A number of commercial Web sites use some forms of personalization. Forexample, one Web site employs two levels of subscribers. The preferredstatus level may receive personalized content by going to the server. Itmay not matter what the load is on the site; clients of a given levelmay always get the same service level. If the system is heavily loaded,their performance may be impacted but to a lesser degree due to the useof dedicated servers. Non-preferred users may get whatever the systemcan support no matter if it is heavily loaded or lightly loaded. “Load”generally refers to the utilization of the Web site and/or the number ofrequests made for content associated with the Web site.

Web sites of weather or news related organizations typically support theconcept of “extreme weather” or “big new story” situations. Suchorganizations may cut back on content of all types the more load theyhave on their Web sites. If they have no concept of preferred ornon-preferred customers, personalized content simply becomes out-datedunder these conditions.

Another Web site employs the concept of shifting servers if a particularcategory of content is getting too much load. No personalization orcustomer differentiation is used. Load is simply shifted based on degreeof usage.

Thus, a need exists for improved serving of personalized content in adistributed data network.

SUMMARY OF THE INVENTION

The present invention provides techniques for improved serving ofcontent in a distributed data network.

In one aspect of the invention, a technique of delivering content in aclient-server system based on a request from a client comprises thefollowing steps/operations. The request is received at a computingdevice, the receiving computing device being part of a hierarchy of oneor more caches and one or more servers in the client-server system. Acurrent load on a next-level computing device of the hierarchy isdetermined. When the current load on the next-level computing device ofthe hierarchy is such that a response time for delivery of the requestfrom the next-level computing device would increase above a giventhreshold, a client type associated with the request is checked and,when the client type indicates that the client is below a given prioritylevel, content to be delivered to the client in response to the requestis personalized at the receiving computing device. When the current loadon the next-level computing device of the hierarchy is such that aresponse time for delivery of the request from the next-level computingdevice would not increase above a given threshold, the request is sentfrom the receiving computing device to the next-level computing deviceand the content to be delivered to the client in response to the requestis personalized at the next-level computing device. The personalizedcontent is sent to the client.

These and other objects, features and advantages of the presentinvention will become apparent from the following detailed descriptionof illustrative embodiments thereof, which is to be read in connectionwith the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a distributed data networkarchitecture with which embodiments of the present invention may beimplemented;

FIG. 2 is a flow diagram illustrating a methodology for servingpersonalized content in accordance with an embodiment of the presentinvention; and

FIG. 3 is a block diagram illustrating a computing system with whichembodiments of the present invention may be implemented.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The present invention will be explained below in the context of anillustrative Internet or World Wide Web implementation. However, it isto be understood that the present invention is not limited to such andata network architecture. Rather, the invention is more generallyapplicable to any distributed data environment in which it would bedesirable to serve personalized data to a client.

As illustratively used herein, the term “client” may generally refer toone or more computing systems (e.g., personal computer, personal digitalassistant, cellphone, laptop, etc.) capable of making a request to aserver (e.g., by connecting to a network to obtain data). A “client” mayalso occasionally refer to the individual(s) using the computing system(this will be clear from the circumstances). A “server” may generallyrefer to one or more computing systems capable of responding to a clientrequest (e.g., by generating and serving content available on thenetwork). A “cache” may generally refer to one or more computing systemscapable of storing and also serving data efficiently and is typicallydeployed to improve performance.

As will be illustratively explained below, the invention providestechniques for providing data in a client-server environment (includingWeb environments) in which personalized content is served from one ormore servers and one or more caches. The system selects the properserver(s) and cache(s) to provide personalization based oncharacteristics such as load on the system and client identity. Ingeneral, the degree of personalization of Web pages that can be achievedat a cache node is less than that possible at a server node. However,the improved personalization at a server node, relative to that at acache, comes at a price. The performance of serving personalized pagesat a cache is usually better than that at a server node. The inventionmakes use of this difference to optimize the degree of personalizationbased on selecting degree and location of personalization based onseveral factors.

Furthermore, in one embodiment, it is to be appreciated that theinvention may be realized with one or more Web caches (having limitedWeb page personalization capability) and one or more Web servers (withcapability of various levels of additional Web page personalization)arranged in a hierarchy. The Web cache(s) are interposed between thedata network and the Web server(s).

There has been considerable work in the area of hierarchical caching forWeb environments. The following references describe such work: J. Wang,“A Survey of Web Caching Schemes for the Internet,” ACM ComputerCommunication Review (CCR), Vol. 29, No. 5, October 1999; and J.Challenger et al., “Efficiently Serving Dynamic Data at Highly AccessedWeb Sites,” IBM Research Report No. RC22823, June 2003, the disclosuresof which are incorporated by reference herein. However, no pastreferences on hierarchical caching describe how to use such systems forpersonalization.

In accordance with the present invention, a combination of severalcriteria may be used to determine where the personalization is done andthe degree of personalization to be employed.

In an illustrative methodology described herein, the inventiondetermines when a page is served from a cache using considerations basedon personalization. Thus, even if a Web page is cached at a Web cache,the methodology may decide to serve the page from a Web server,depending on the degree of personalization that the methodology decidesto achieve. While the Web page can be personalized at a cache, lessinformation about the client may be available at the cache. For example,limited or no history of access information may be available for eachclient at the cache. The source Internet Protocol (IP) address of theclient (or that of the firewall his request comes through) is known atthe cache. The cache may process cookies, or uniform resource locator(URL) headers that may provide more information about the client.

One criterion for selective personalization that may be employed by theinvention is that of the current load on the caches and the servers. Ifa Web server is lightly loaded, the methodology of the invention mayfavor personalization on the Web server. On the other hand, if the Webserver is heavily loaded, the methodology of the invention may favorpersonalization at another entity. If the server has moderate load, themethodology of the invention may decide to still perform thepersonalization at the server, but to limit the degree ofpersonalization so as to use less processing power at the server. If allcaches and servers are loaded beyond a threshold, the methodology of theinvention may serve the Web page without personalization to minimize theresources used.

Furthermore, the identity and class of the client may be used todetermine the location and degree of personalization. As is known, theidentity of the client may be carried using cookies or URL extensions,by hidden fields, or other mechanisms in the Web request. High priorityclients for personalization may be favored over lower priority clients.Thus, load on the Web servers permitting, personalization for the highpriority clients may be done on the Web servers; very low priorityclients may not have any personalization at all, and could be fedpre-cached pages; clients with intermediate priority would be servedfrom a server if the server load is not too high, and personalized atthe cache if server load is higher.

Referring initially to FIG. 1, a block diagram illustrates a distributeddata network architecture with which one or more embodiments of thepresent invention may be implemented. As shown, the architecture mayinclude a plurality of client nodes 1000-1, . . . , 1000-n) connected tonetwork 2000 (e.g., World Wide Web). The architecture may also include amultilevel hierarchy formed by one or more caches and one or moreservers. In the example shown in FIG. 1, level 1 (e.g., the lowesthierarchy level) includes a plurality of Web caches 3000-1, . . . ,3000-m, which are directly connected to network 2000. Level 2 includesWeb cache 4000-1 connected to the level 1 caches. Level 3 (e.g., thehighest hierarchy level) includes Web server 5000-1 connected to thelevel 2 cache. It is to be understood that more or less caches and Webservers may be employed at each level and the hierarchy may include moreor less levels.

Referring now FIG. 2, a flow diagram illustrates a methodology forserving personalized content in accordance with an embodiment of thepresent invention. More particularly, FIG. 2 shows processing logic 6000of a Web page request at a Web cache. It is to be understood that suchmethodology could be implemented at a cache at any level in thehierarchy.

In step 6010, a Web request is received at a Web cache. Note that if thecache is at the lowest level of the hierarchy, the request is directlyfrom the client. Otherwise, the request is from the next lower levelcache of the hierarchy. The load on the next level of the hierarchy isconsidered in step 6020. If the load is high (e.g., enough to increaseresponse times by at least 50 percent), the client type is checked instep 6030. If the client type is of low priority, the personalization isperformed at the Web cache in step 6060. Otherwise, the client requestis sent to the next level of the hierarchy at step 6040.

In step 6050, the personalized response is received back from the cachein the next level of the hierarchy. In step 6070, the personalized pageis returned to the client. This is done through the next lower levelcache of the hierarchy, if the Web cache is not at the lowest level.

It is to be noted that for the cache at the highest level of the cachehierarchy (i.e., the portion of the overall system hierarchy thatincludes only the caches), no client type checking will be performed.All requests forwarded to the cache will be served. Since the lowerlevel cache maintains information on the load of the higher level cache,it can avoid overloading the higher level cache.

It is also to be noted that the client can have multiple levels ofpriority. The priority threshold to forward the request to the nexthigher level cache is load dependent. For example, assume four levels ofclient priority. If the load of the higher level cache is at 30 percent(%) or less, all requests can be forwarded to the higher level cache.Between 30% and 50% load, only clients with a priority level of two orhigher will be forwarded to the next level. Between 50% and 70% load,the priority threshold is at priority level three. Above 70% load, onlya priority four client request will be forwarded to the next level.

One example of using the invention would pertain to personalizing aweather Web site that gets high loads during extreme weather (e.g.,hurricanes). Such a Web site may be able to give customers verypersonalized and selectable content under normal conditions such aslocal golf course conditions, current local maps, local temperatures,etc. Customers to the site would be placed in differentquality-of-service (QoS) classes. Customers in higher QoS classes wouldget preferred access to personalized data. When the site is subject tolarge numbers of users coming to the site during extreme weatherconditions, the site could choose which customers it would give currentpersonalized information versus perhaps personalized, but out-of-date,information.

So a preferred customer may always get his up-to-date personalizedcontent even when the site is under very high load. A regular customerwould receive all of his personalized information up-to-date when thesite is lightly loaded but under heavy load his content would still bepersonalized but would only be updated at some interval (e.g., everyfifteen minutes) and so would be out-of-date.

The site could even be set up to have hierarchical levels of cachingbased on various loads. So that general customers would receiveout-of-date information (fifteen minutes old) from first level caches,the next level up customer would receive more up-to-date information(two minutes old) from the next level of caches, and the most preferredcustomers would receive up-to-date information directly from the serverunder almost all conditions.

The location and degree of personalization may depend on the Web pageand/or port being requested. For instance, in an on-line businessscenario, it may be deemed that request pages associated with orderingare to be favored for deep personalization. Or, there may be excessstock of some item, and browsers of certain other catalog pages arelikely targets for advertising that item, possibly requiringpersonalization at the server. Those skilled in the art will readilyappreciate that other criteria may be combined with the above indetermining the location and degree of personalization to be performedfor a Web page requested by a client. For instance, personalizationcould be dependent on a profile of client preferences, e.g., preferencefor lower response time over more personalized data. Or it could belength of a client session, favoring clients who stay on the siteindicating that they like the site.

The decision to perform personalization can also take into account thetype of personalization: (i) ad insertion; (ii) promotion (links withinthe site); and (iii) format of page which should only be done at thehost.

Personalization is just one example of an application of the invention.More generally, the invention provides a methodology for providingdifferentiated accuracy of information. In some cases, accuracy ofinformation may be the degree of personalization. In other cases, it maybe something entirely different (e.g., degree of image resolution).

Referring finally to FIG. 3, a block diagram illustrates an illustrativehardware implementation of a computing system in accordance with whichone or more components/steps of the invention (e.g., methodologiesdescribed in the context of FIG. 2 as may be performed in accordancewith the architecture of FIG. 1) may be implemented, according to anembodiment of the present invention. Thus, the computer system in FIG. 3may be used to implement the caches and servers shown in FIG. 1. Thecomputer system of FIG. 3 may also be used to implement each of theplurality of clients.

It is to be understood that the individual components/steps of theinvention may be implemented on one such computer system, or morepreferably, on more than one such computer system. In the case of animplementation on a distributed computing system, the individualcomputer systems and/or devices may be connected via a suitable network,e.g., the Internet or World Wide Web. However, the system may berealized via private or local networks. The invention is not limited toany particular network.

As shown, the computer system 7000 may be implemented in accordance witha processor 7020, a memory 7040, I/O devices 7060, and a networkinterface 7080, coupled via a computer bus 7100 or alternate connectionarrangement.

It is to be appreciated that the term “processor” as used herein isintended to include any processing device, such as, for example, onethat includes a CPU and/or other processing circuitry. It is also to beunderstood that the term “processor” may refer to more than oneprocessing device and that various elements associated with a processingdevice may be shared by other processing devices.

The term “memory” as used herein is intended to include memoryassociated with a processor or CPU, such as, for example, RAM, ROM, afixed memory device (e.g., hard drive), a removable memory device (e.g.,diskette), flash memory, etc.

In addition, the phrase “input/output devices” or “I/O devices” as usedherein is intended to include, for example, one or more input devices(e.g., keyboard, mouse, etc.) for entering data to the processing unit,and/or one or more output devices (e.g., speaker, display, etc.) forpresenting results associated with the processing unit.

Still further, the phrase “network interface” as used herein is intendedto include, for example, one or more transceivers to permit the computersystem to communicate with another computer system via an appropriatecommunications protocol.

Accordingly, software components including instructions or code forperforming the methodologies described herein may be stored in one ormore of the associated memory devices (e.g., ROM, fixed or removablememory) and, when ready to be utilized, loaded in part or in whole(e.g., into RAM) and executed by a CPU.

The invention can be applied to caching in a variety of differentcontexts in addition to the Web. It is important to note that while thepresent invention has been described in the context of a fullyfunctioning data processing system, those of ordinary skill in the artwill appreciate that the processes of the present invention are capableof being distributed in the form of a computer readable medium ofinstructions and a variety of forms and that the present inventionapplies equally regardless of the particular type of signal bearingmedia actually used to carry out the distribution. Examples of computerreadable media include storage media, such as a floppy disk, a hard diskdrive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such asdigital and analog communications links, wired or wirelesscommunications links using transmission forms, such as, for example,radio frequency and light wave transmissions. The computer readablemedia may take the form of coded formats that are decoded for actual usein a particular data processing system.

It is to be further appreciated that a service provider could provideaspects of the present invention in the following illustrative way.Clients could belong to different quality-of-service (QoS) classes.Clients belonging to high QoS classes get preferred access topersonalized information. The service provider could provide differentoptions for grouping clients into different QoS classes. One such methodwould be for levels of service to be specified via service levelagreements.

During periods of light load, all clients could receive personalizedinformation. During periods of heavier load, some fraction of clientscould receive less personalized content. As load increases, more clientswould receive less personalized information. Clients belonging to higherQoS classes would be affected the least. Conversely, as load decreases,more clients could receive more personalized information.

The service provider could monitor load on the system and control thedegree of personalization in response to varying loads.

Although illustrative embodiments of the present invention have beendescribed herein with reference to the accompanying drawings, it is tobe understood that the invention is not limited to those preciseembodiments, and that various other changes and modifications may bemade by one skilled in the art without departing from the scope orspirit of the invention.

1. A method of delivering content in a client-server system based on arequest from a client, comprising the steps of: receiving the request ata computing device, the receiving computing device being part of ahierarchy of one or more caches and one or more servers in theclient-server system; determining a current load on a next-levelcomputing device of the hierarchy; when the current load on thenext-level computing device of the hierarchy is such that a responsetime for delivery of the request from the next-level computing devicewould increase above a given threshold, checking a client typeassociated with the request and, when the client type indicates that theclient is below a given priority level, personalizing content to bedelivered to the client in response to the request at the receivingcomputing device; when the current load on the next-level computingdevice of the hierarchy is such that a response time for delivery of therequest from the next-level computing device would not increase above agiven threshold, the request is sent from the receiving computing deviceto the next-level computing device and the content to be delivered tothe client in response to the request is personalized at the next-levelcomputing device; and sending the personalized content to the client. 2.The method of claim 1, wherein personalizing the content to be deliveredto the client in response to the request comprises selecting a level ofpersonalization from a plurality of levels of personalization.
 3. Themethod of claim 2, wherein the selection of the level of personalizationis based on at least one personalization preference.
 4. The method ofclaim 2, wherein personalizing the content to be delivered to the clientin response to the request further comprises creating a personalized Webpage based on the selected level of personalization.
 5. The method ofclaim 1, wherein delivering content in a client-server system comprisesdelivering content in the World Wide Web.
 6. The method of claim 5,wherein delivering the content comprises delivering one or more Webpages.
 7. A computing device for delivering content in a client-serversystem based on a request from a client, the computing device being partof a hierarchy of one or more caches and one or more servers in theclient-server system, the computing device comprising: a memory; and oneor more processors coupled to the memory and operative: to receive therequest; to determine a current load on a next-level computing device ofthe hierarchy; when the current load on the next-level computing deviceof the hierarchy is such that a response time for delivery of therequest from the next-level computing device would increase above agiven threshold, to check a client type associated with the request and,when the client type indicates that the client is below a given prioritylevel, to personalize content to be delivered to the client in responseto the request; when the current load on the next-level computing deviceof the hierarchy is such that a response time for delivery of therequest from the next-level computing device would not increase above agiven threshold, to send the request to the next-level computing devicesuch that content to be delivered to the client in response to therequest is personalized at the next-level computing device; and to sendthe personalized content to the client.
 8. The computing device of claim7, wherein personalizing the content to be delivered to the client inresponse to the request comprises selecting a level of personalizationfrom a plurality of levels of personalization.
 9. The computing deviceof claim 8, wherein the selection of the level of personalization isbased on at least one personalization preference.
 10. The computingdevice of claim 8, wherein personalizing the content to be delivered tothe client in response to the request further comprises creating apersonalized Web page based on the selected level of personalization.11. The computing device of claim 7, wherein delivering content in aclient-server system comprises delivering content in the World Wide Web.12. The computing device of claim 11, wherein delivering the contentcomprises delivering one or more Web pages.
 13. The computing device ofclaim 11, wherein the computing device is one of a cache or a server.14. An article of manufacture for use in delivering content in aclient-server system based on a request from a client, comprising acomputer readable storage medium containing one or more programs whichwhen executed by a computing device, the computing device being part ofa hierarchy of one or more caches and one or more servers in theclient-server system, implement the steps of: receiving the request;determining a current load on a next-level computing device of thehierarchy; when the current load on the next-level computing device ofthe hierarchy is such that a response time for delivery of the requestfrom the next-level computing device would increase above a giventhreshold, checking a client type associated with the request and, whenthe client type indicates that the client is below a given prioritylevel, personalizing content to be delivered to the client in responseto the request; when the current load on the next-level computing deviceof the hierarchy is such that a response time for delivery of therequest from the next-level computing device would not increase above agiven threshold, sending the request to the next-level computing devicesuch that content to be delivered to the client in response to therequest is personalized at the next-level computing device; and sendingthe personalized content to the client.
 15. The article of manufactureof claim 14, wherein personalizing the content to be delivered to theclient in response to the request comprises selecting a level ofpersonalization from a plurality of levels of personalization.
 16. Thearticle of manufacture of claim 15, wherein the selection of the levelof personalization is based on at least one personalization preference.17. The article of manufacture of claim 15, wherein personalizing thecontent to be delivered to the client in response to the request furthercomprises creating a personalized Web page based on the selected levelof personalization.
 18. The article of manufacture of claim 14, whereindelivering content in a client-server system comprises deliveringcontent in the World Wide Web.
 19. The article of manufacture of claim18, wherein delivering the content comprises delivering one or more Webpages.
 20. The article of manufacture of claim 14, wherein the computingdevice is one of a cache or a server.